/*
 * @lc app=leetcode.cn id=680 lang=javascript
 *
 * [680] 验证回文字符串 Ⅱ
 */

// @lc code=start
/**
 * @param {string} s
 * @return {boolean}
 */

var isValid = function (s) {
    let l = 0, r = s.length - 1
    while (l < r) {
        if (s[l] !== s[r]) {
            return false
        }
        l++;
        r--;
    }
    return true
}

var validPalindrome = function(s) {
    let l = 0, r = s.length - 1

    while(l < r) {
        if (s[l] !== s[r]) {
            return isValid(s.slice(l, r)) || isValid(s.slice(l+1, r+1))
        }
        l++;
        r--;
    }

    return true
};
// @lc code=end

console.log(
    // validPalindrome("aba") // true
    // validPalindrome("abca") // true
    // validPalindrome("abc") // false
    validPalindrome('xdddbababeccebababddd') // true
)